package com.wtb.javatool.service;

import com.wtb.javatool.common.PageBean;
import com.wtb.javatool.common.R;
import com.wtb.javatool.dto.ProjectDto;
import com.wtb.javatool.dto.TeamDto;
import com.wtb.javatool.dto.UserDto;
import com.wtb.javatool.entity.Course;
import com.wtb.javatool.entity.Project;
import com.wtb.javatool.vo.CourseTaskListCard;

import java.util.List;

public interface ProjectService {

    int createProject(Project project, List<Long> userIds, Integer projectType);

    PageBean<Project> findProjectsByUserId(Long userId,
                                           String projectName,
                                           Integer projectType,
                                           Integer projectStatus,
                                           List<Long> projectDate,
                                           Integer currentPage,
                                           Integer pageSize);


    ProjectDto findProjectByProjectId(Long projectId, int projectType);

    List<UserDto> findProjectMemberByProjectId(Long projectId, String userName);

    List<TeamDto> findProjectTeamsAndMembersByProjectId(Long projectId, Long courseId);

    void upsertDeleteUsers(Long projectId, List<UserDto> frontendUsers);

    void updateProject(Project project);

    void upsertDeleteCourses(Long projectId, List<Course> frontendCourses);
}
